from PathLength import *


def Reins(Chrom, Selch, index):
    """
    重插入子代的新种群,精英选择
    :param Chrom: 父代的种群
    :param Selch: 子代种群
    :param index: 对适应度排序后对应之前的序号
    :return:组合父代与子代后得到的新种群
    """
    NIND = Chrom.shape[0]
    NSel = Selch.shape[0]

    oldBestIndex = index[-1]
    newIndex = index[1:NIND - NSel]
    newIndex.append(oldBestIndex)

    Chrom = np.concatenate((Chrom[newIndex], Selch), axis=0)
    return Chrom
